<?php

/*
 * Modelo: "datos_inv.php"
 * Copyright 2011 SISVOX.
 *
 * Licenciado bajo SISVOX, Version 1.0 (la "Licencia");
 * El codigo presente que compone este Software es propiedad unica y
 * exclusivamente de SISVOX, por lo tanto, usted no podr� utilizar este
 * archivo excepto en cumplimiento de la Licencia ofrecida por SISVOX.
 * Usted puede obtener una copia de la Licencia en:
 *
 *      Soluciones Integrales de Software Vox (SISVOX)
 *                 http://www.sisvox.com
 *
 *     - Carlos Calvo      <ccalvo@sisvox.com>
 *     - Andres Hernandez  <ahernandez@sisvox.com>
 *
 * A menos que sea requerido por la ley aplicable o se acuerde por escrito,
 * el software distribuido bajo la licencia se distribuye "TAL CUAL", CON
 * LAS GARANTIAS Y CONDICIONES expresadas en la "Licencia".
 */


@include_once('enlaceBD.php');
@include_once("helper.php");

class Datos_inv {
	
    /* Nombre de las Variables del Modelo (INFORMATIVO)
	
	*/

    // Variable para los resultados de las Consultas
    private $respuesta;

	// Tablas del Modelo
    private $tsmat_datos_inv 		= "smat_datos_inv";
	
	private $tsmat_estad_civ 		= "smat_estad_civ";
	private $tsmat_condi_per 		= "smat_condi_per";
	private $tsmat_grave_per 		= "smat_grave_per";
	
	
    // =================================================================================================================
    //	FUNCION - INSERTAR LOS DATOS DE UNA INFRACCIÓN
    // =================================================================================================================
	
    public function insertar_datos_inf( $id_motivo, $fecha, $hora, $id_tipo_ide_inf, $nro_ide_inf, $nombre_infractor, $grado_lic, $id_condi_per, $sexo, $fecha_nacimiento, $domicilio, $cod_tel, $nro_tel, $cod_cel, $nro_cel, $correo, $vehiculo, $placa, $serial_carroceria, $marca, $modelo, $color, $anyo, $tipo, $uso, $geolocalizacion, $coord_x, $coord_y, $id_estado, $id_municipio, $id_parroquia, $id_sector, $id_tipo_via, $referencia, $remolque, $id_tipo_ide_ope, $nro_ide_ope, $nombre_operador, $placa_grua, $id_estacionamiento, $id_tipo_ide_fun, $nro_ide_fun, $login_registro, $importe, $observaciones )
    {
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Agregar la Infracción (Problemas en la Conexión): ".$conexion->getLastMessage();
			$this->retorno[2] = "-1";
            return $this->retorno;
        }
        else
        {
            $fmt_fecha_inf	= $conexion->darFormatoFecha($fecha);
			$fmt_hora_inf	= $conexion->darFormatoHora($hora);
			$fmt_fecha_nac	= $conexion->darFormatoFecha($fecha_nacimiento);
			$fecha_actual 	= $conexion->getSQLTimeStamp();
			
			$fmt_fecha_nac_edad	= $conexion->darFormatoFechaEdad($fecha_nacimiento);
			
			$edad = calcular_edad( $fmt_fecha_nac_edad );
			
			$sql = "insert into ".$_SESSION['db_smit_WS'].$_SESSION['schema_db_WS'].".$this->tsmit_datos_inf ( id_motivo, id_status, fecha, hora, id_tipo_ide_inf, nro_ide_inf, nombre_infractor, grado_lic, id_condi_per, sexo, edad, fecha_nacimiento, domicilio, cod_tel, nro_tel, cod_cel, nro_cel, correo, vehiculo, placa, serial_carroceria, marca, modelo, color, anyo, tipo, uso, geolocalizacion, coord_x, coord_y, id_estado, id_municipio, id_parroquia, id_sector, id_tipo_via, referencia, remolque, id_tipo_ide_ope, nro_ide_ope, nombre_operador, placa_grua, id_estacionamiento, id_tipo_ide_fun, nro_ide_fun, login_registro, fecha_registro, importe, observaciones )
             		values ( $id_motivo, 1, $fmt_fecha_inf, $fmt_hora_inf, '$id_tipo_ide_inf', '$nro_ide_inf', '$nombre_infractor', '$grado_lic', $id_condi_per, '$sexo', $edad, $fmt_fecha_nac, '$domicilio', '$cod_tel', '$nro_tel', '$cod_cel', '$nro_cel', '$correo', ";
			
            $sql .= "'$vehiculo', ";
			
			if ( $vehiculo == "SI" ) {	
				$sql .= "'$placa', '$serial_carroceria', '$marca', '$modelo', '$color', '$anyo', '$tipo', '$uso', ";
			} else if ( $vehiculo == "NO" ) {
				$sql .= "null, null, null, null, null, null, null, null, ";
			}
			
			$sql .= "'$geolocalizacion', ";
			
			if ( $geolocalizacion == "SI" ) {
				$sql .= "'$coord_x', '$coord_y', ";
			} else if ( $geolocalizacion == "NO" ) {
				$sql .= "null, null, ";
			}
			
			$sql .= "'$id_estado', '$id_municipio', ";
			
			if ( $id_parroquia != "" ) {
				$sql .= "'$id_parroquia', ";
			} else {
				$sql .= "null, ";
			}
			if ( $id_sector != "" ) {
				$sql .= "'$id_sector', ";
			} else {
				$sql .= "null, ";
			}
			
			$sql .= "$id_tipo_via, ";
			
			if ( $referencia != "" ) {
				$sql .= "'$referencia', ";
			} else {
				$sql .= "null, ";
			}
			
			$sql .= "'$remolque', ";
			
			if ( $remolque == "SI" ) {
				$sql .= "'$id_tipo_ide_ope', '$nro_ide_ope', '$nombre_operador', '$placa_grua', $id_estacionamiento, ";
			} else if ( $remolque == "NO" ) {
				$sql .= "null, null, null, null, null, ";
			}
			
			$sql .= "'$id_tipo_ide_fun', '$nro_ide_fun', '$login_registro', $fecha_actual, $importe, ";
			
			if ( $observaciones != "" ) {
				$sql .= "'$observaciones')";
			} else {
				$sql .= "null)";
			}
			
			$this->respuesta = $conexion->consultar($sql);
			
            $temparray = $conexion->buscarFilasAfectadas();
			
            if($temparray == 0)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Agregar la Infracción: ".$conexion->getLastMessage();
				$this->retorno[2] = "-1";
            }
            else
            {
            	$id = $conexion->buscarUltimoInsertID();
				
                $this->retorno[0] = "S";
                $this->retorno[1] = "La Infracción se ha Agregado con Exito con el ID: ".$id;
				$this->retorno[2] = $id;
            }
			
			$conexion->desconectar();
			return $this->retorno;
        }
    }
	
	
	// =================================================================================================================
    //	FUNCION - CONSULTAR LOS DATOS DE UN INVOLUCRADO (XML) EN UN ACCIDENTE
    // =================================================================================================================
	
    public function consultar_datos_inv_xml( $id_expediente ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smat_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Consultar los Datos de los Involucrados en una Accidente (Problemas en la Conexión): ".$conexion->getLastMessage();
            return $this->retorno;
        }
        else
        {
        	$sql = "select i.id_expediente as id_expediente, 
					i.id_tipo_identificacion as id_tipo_identificacion, 
					i.nro_identificacion as nro_identificacion, 
					i.placa as placa, 
					i.nombres as nombres, 
					i.apellidos as apellidos, 
					i.edad as edad, 
					i.sexo as sexo, 
					e.nombre as nombre_estad_civ, 
					i.domicilio as domicilio, 
					i.cod_tel as cod_tel, 
					i.nro_tel as nro_tel, 
					i.cod_cel as cod_cel, 
					i.nro_cel as nro_cel, 
					i.correo as correo, 
					i.cinturon as cinturon, 
					i.casco as casco, 
					i.asistido as asistido, 
					c.nombre as nombre_condi_per, 
					g.nombre as nombre_grave_per, 
					i.observaciones as observaciones 
				from ".$_SESSION['db_smat'].$_SESSION['schema_db'].".$this->tsmat_datos_inv as i, 
					".$_SESSION['db_smat_base'].$_SESSION['schema_db'].".$this->tsmat_estad_civ as e, 
					".$_SESSION['db_smat_base'].$_SESSION['schema_db'].".$this->tsmat_condi_per as c, 
					".$_SESSION['db_smat_base'].$_SESSION['schema_db'].".$this->tsmat_grave_per as g 
				where i.id_expediente = $id_expediente and 
					i.id_estad_civ = e.id_estad_civ and 
					i.id_condi_per = c.id_condi_per and 
					i.id_grave_per = g.id_grave_per";
			
			$this->respuesta = $conexion->consultar($sql);
			
			$temparray = $this->respuesta->buscar_fila();
			
            if(!temparray)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Consultar los Datos de los Involucrados en un Accidente: ".$conexion->getLastMessage();
            }
            else
            {
				// Si se encontro un Resultado con el ID dado
				if ( $temparray['id_expediente'] != "" ) 
				{
					
					$_xml="<datos_inv>";
					$_xml.="<id_expediente>".$temparray['id_expediente']."</id_expediente>";
					$_xml.="<id_tipo_identificacion>".utf8_encode(strtoupper($temparray['id_tipo_identificacion']))."</id_tipo_identificacion>";
					$_xml.="<nro_identificacion>".utf8_encode(strtoupper($temparray['nro_identificacion']))."</nro_identificacion>";
					$_xml.="<placa>".strtoupper($temparray['placa'])."</placa>";
					$_xml.="<nombres>".utf8_encode(strtoupper($temparray['nombres']))."</nombres>";
					$_xml.="<apellidos>".utf8_encode(strtoupper($temparray['apellidos']))."</apellidos>";
					$_xml.="<edad>".$temparray['edad']."</edad>";
					if ( $temparray['sexo'] == "M" ) {
						$_xml.="<sexo>MASCULINO</sexo>";
					} else if ( $temparray['sexo'] == "F" ) {
						$_xml.="<sexo>FEMENINO</sexo>";
					}
					
					$_xml.="<nomnre_estad_civ>".utf8_encode(strtoupper($temparray['nomnre_estad_civ']))."</nomnre_estad_civ>";
					
					$_xml.="<domicilio>".utf8_encode(strtoupper($temparray['domicilio']))."</domicilio>";
					$_xml.="<cod_tel>".$temparray['cod_tel']."</cod_tel>";
					$_xml.="<nro_tel>".$temparray['nro_tel']."</nro_tel>";
					$_xml.="<cod_cel>".$temparray['cod_cel']."</cod_cel>";
					$_xml.="<nro_cel>".$temparray['nro_cel']."</nro_cel>";
					$_xml.="<correo>".$temparray['correo']."</correo>";
					
					if ( $temparray['cinturon'] == "NA" ) {
						$_xml.="<cinturon>NO APLICA</cinturon>";
					} else {
						$_xml.="<cinturon>".$temparray['cinturon']."</cinturon>";
					}
					if ( $temparray['casco'] == "NA" ) {
						$_xml.="<casco>NO APLICA</casco>";
					} else {
						$_xml.="<casco>".$temparray['casco']."</casco>";
					}
					
					$_xml.="<asistido>".$temparray['asistido']."</asistido>";
					$_xml.="<nombre_condi_per>".utf8_encode(strtoupper($temparray['nombre_condi_per']))."</nombre_condi_per>";
					$_xml.="<nombre_grave_per>".utf8_encode(strtoupper($temparray['nombre_grave_per']))."</nombre_grave_per>";
					$_xml.="<observaciones>".utf8_encode(strtoupper($temparray['observaciones']))."</observaciones>";
					$_xml.="</datos_inv>";
				}
				// Si no se encontro ningun Resultado con el ID dado
				else
				{
					$_xml="<datos_inv>";
					$_xml.="VACIO";
					$_xml.="</datos_inv>";
				}
				
				$this->retorno[0] = "S";
				$this->retorno[1] = $_xml;
            }
			
			$conexion->desconectar();
			return $this->retorno;
		}
    }
	
	
	// ===========================================================================================================
    // FUNCION - CONSULTAR LOS DATOS DE UN INVOLUCRADO EN UN ACCIDENTE
    // ===========================================================================================================
    
    public function consultar_datos_inv( $id_expediente ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smat'] );
		
		$sql = "select i.id_expediente as id_expediente, 
					i.id_tipo_identificacion as id_tipo_identificacion, 
					i.nro_identificacion as nro_identificacion, 
					i.placa as placa, 
					i.nombres as nombres, 
					i.apellidos as apellidos, 
					i.edad as edad, 
					i.sexo as sexo, 
					e.nombre as nombre_estad_civ, 
					i.domicilio as domicilio, 
					i.cod_tel as cod_tel, 
					i.nro_tel as nro_tel, 
					i.cod_cel as cod_cel, 
					i.nro_cel as nro_cel, 
					i.correo as correo, 
					i.cinturon as cinturon, 
					i.casco as casco, 
					i.asistido as asistido, 
					c.nombre as nombre_condi_per, 
					g.nombre as nombre_grave_per, 
					i.observaciones as observaciones 
				from ".$_SESSION['db_smat_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_datos_inv as i, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_estad_civ as e, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_condi_per as c, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_grave_per as g 
				where i.id_expediente = $id_expediente and 
					i.id_estad_civ = e.id_estad_civ and 
					i.id_condi_per = c.id_condi_per and 
					i.id_grave_per = g.id_grave_per";
        
        $this->respuesta = $conexion->consultar($sql) 
			or die("No se pudo Consultar los Datos de los Involucrados en el Accidente: $id_expediente.");
        
		$i = 0;
        while ( $temparray = $this->respuesta->buscar_fila() ) {
            $lista_datos_inv[$i][0] = $temparray['id_expediente'];
            $lista_datos_inv[$i][1] = strtoupper($temparray['id_tipo_identificacion']);
            $lista_datos_inv[$i][2] = strtoupper($temparray['nro_identificacion']);
            $lista_datos_inv[$i][3] = strtoupper($temparray['placa']);
            $lista_datos_inv[$i][4] = strtoupper($temparray['nombres']);
            $lista_datos_inv[$i][5] = strtoupper($temparray['apellidos']);
            $lista_datos_inv[$i][6] = $temparray['edad'];
			
			if ( $temparray['sexo'] == "M" ) {
				$lista_datos_inv[$i][7] = "MASCULINO";
			} else if ( $temparray['sexo'] == "F" ) {
				$lista_datos_inv[$i][7] = "FEMENINO";
			}
			
            $lista_datos_inv[$i][8] = strtoupper($temparray['nombre_estad_civ']);
            $lista_datos_inv[$i][9] = strtoupper($temparray['domicilio']);
            $lista_datos_inv[$i][10] = $temparray['cod_tel'];
			$lista_datos_inv[$i][11] = $temparray['nro_tel'];
            $lista_datos_inv[$i][12] = $temparray['cod_cel'];
            $lista_datos_inv[$i][13] = $temparray['nro_cel'];
            $lista_datos_inv[$i][14] = $temparray['correo'];
			
			if ( $temparray['cinturon'] == "NA" ) {
				$lista_datos_inv[$i][15] = "NO APLICA";
			} else {
				$lista_datos_inv[$i][15] = $temparray['cinturon'];
			}
			if ( $temparray['casco'] == "NA" ) {
				$lista_datos_inv[$i][16] = "NO APLICA";
			} else {
				$lista_datos_inv[$i][16] = $temparray['casco'];
			}
            $lista_datos_inv[$i][17] = $temparray['asistido'];
            $lista_datos_inv[$i][18] = strtoupper($temparray['nombre_condi_per']);
            $lista_datos_inv[$i][19] = strtoupper($temparray['nombre_grave_per']);
            $lista_datos_inv[$i][20] = strtoupper($temparray['observaciones']);
           	$i++;
        }
        
        $conexion->desconectar();
        return $lista_datos_inv;
    }
}
?>